package main

import (
	"fmt"
	"strings"
)

func main() {
	//字符串基本操作
	//1. 求解字符串的长度
	//返回的是字节的长度
	//涉及到中文问题就产生了变化
	//unicode 字符集， 存储的时候需要编码 utf8编码规则， utf8编码是一个动态的编码规则
	//utf8编码， 还能够用一个字节表示英文
	var name string = "洪聪锦hcj"
	fmt.Println(len(name))
	//类型转换
	name_arr := []int32(name)
	fmt.Println(len(name_arr))

	//转义字符
	name1 := "boby:\"行\""
	fmt.Println(name1)

	date := "2020\\06\\29"
	fmt.Println(date)
	//2.是否包含某个子串
	var name2 string = "hcj洪"
	fmt.Println(strings.Contains(name2, "hcj"))
	fmt.Println(strings.Index(name2, "洪"))

	//2.统计出现了多少次
	fmt.Println(strings.Count(name2, "h"))
	//前缀
	fmt.Println(strings.HasPrefix(name2, "h"))
	//后缀
	fmt.Println(strings.HasSuffix(name2, "洪"))

	//4.大小写转换
	fmt.Println(strings.ToUpper("hcj"))
	fmt.Println(strings.ToLower("HCJ"))
	// 5.字符串的比较
	fmt.Println(strings.Compare("a", "b")) //前面比后面小 返回-1
	fmt.Println(strings.Compare("b", "a")) //前面比后面大  返回1
	fmt.Println(strings.Compare("a", "a")) //相等返回0

	//6.去掉首尾空格
	fmt.Println(strings.TrimSpace("  boby "))
	fmt.Println(strings.TrimLeft("boby", "b"))  //去掉左边的b
	fmt.Println(strings.TrimRight("boby", "y")) //去掉右边的y
	fmt.Println(strings.Trim("yboby", "y"))     //去掉左右两边的y

	//7.split
	fmt.Println(strings.Split("boby imocc", " "))

	//8.字符串的合并
	arrs := strings.Split("boby imocc", " ")
	fmt.Println(strings.Join(arrs, "-"))

	//字符串的替换
	fmt.Println(strings.Replace("hcj 18 18888", "18", "19", 2))
}
